package net.lunjin.util;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;

public class ProjectUtil {

	/**
	 * 通过类型返回说明
	 * @param newsType
	 * @return
	 */
	public static String getNewsType(String newsType) {
		if (newsType.equals("0")) {
			return "曝光黑平台新闻";
		} else if (newsType.equals("1")) {
			return "投资知识";
		} else if (newsType.equals("20")) {
			return "炒现货黄金软件";
		} else if (newsType.equals("21")) {
			return "炒黄金开户指南";
		} else if (newsType.equals("22")) {
			return "标签";
		} else if (newsType.equals("3")) {
			return "伦敦金";
		} else if (newsType.equals("4")) {
			return "纸黄金";
		} else if (newsType.equals("5")) {
			return "黄金T+D";
		} else if (newsType.equals("6")) {
			return "天通金";
		} else if (newsType.equals("7")) {
			return "伦敦银";
		} else if (newsType.equals("8")) {
			return "纸白银";
		} else if (newsType.equals("9")) {
			return "白银T+D";
		} else if (newsType.equals("10")) {
			return "天通银";
		} else if (newsType.equals("11")) {
			return "其它理财话题";
		}
		return "";
	}
	/**
	 * 通过类型返回Title
	 * @param newsType
	 * @return
	 */
	public static String getNewsTitleKeywords(String newsType) {
		if (newsType.equals("0")) {
			return "现货黄金_贵金属_现货白银_曝光骗子黑平台_揭露黑平台_辨别黑平台_黑平台汇总";
		} else if (newsType.equals("1")) {
			return "怎么样炒现货黄金_怎么样投资贵金属_炒现货黄金赚钱_炒现货黄金常见问题_炒现货黄金入门";
		} else if (newsType.equals("20")) {
			return "炒现货黄金软件_现货黄金交易软件_黄金交易操盘软件";
		} else if (newsType.equals("21")) {
			return "炒现货黄金开户_现货黄金开户_黄金交易开户_贵金属开户指南_炒现货黄金哪里开户";
		} 
		return "";
	}
	/**
	 * 通过类型返回Metakeywords
	 * @param newsType
	 * @return
	 */
	public static String getNewsMetadescription(String newsType) {
		if (newsType.equals("0")) {
			return "现货黄金白银黑平台新闻,曝光黑平台_揭露黑平台,帮助大家如何识别黑平台,找到安全正规的交易平台!";
		}  else if (newsType.equals("1")) {
			return "怎样炒现货黄金投资贵金属?炒黄金常见问题的有哪些?炒黄金需要掌握什么知识?炒黄金怎么入门?炒黄金怎么样才不会亏钱?";
		} else if (newsType.equals("20")) {
			return "提供免费的炒黄金软件下载,深发聚金宝_中信银行汇金宝_仟家信_富远行情_集金号_赢顺期货交易软件 _Mytrader2011.";
		} else if (newsType.equals("21")) {
			return "提供炒黄金开户介绍,现货黄金开户_黄金开户_黄金开户指南_炒黄金哪里开户_炒黄金开户需要注意些什么.";
		} 
		return "";
	}
	/**
	 * 通过类型返回金类型,价格走势功能用到
	 * @param newsType
	 * @return
	 */
	public static String getGoldType(String goldType) {
		if (goldType.equals("0")) {
			return "黄金";
		} else if (goldType.equals("1")) {
			return "白银";
		} else if (goldType.equals("2")) {
			return "铂金";
		} else if (goldType.equals("3")) {
			return "钯金";
		} 
		return "";
	}
	/**
	 * 通过分数返回结论
	 * @param fen
	 * @return
	 */
	public static String getFeel(int fen) {
		if (fen > 90) {
			return "很不错！";
		} else if (fen > 80) {
			return "挺好的！";
		} else if (fen > 70) {
			return "还可以！";
		} else if (fen > 60) {
			return "一般般！";
		} else if (fen > 50) {
			return "不咋地！";
		} else if (fen > 40) {
			return "有点糟！";
		} else if (fen > 30) {
			return "慎重选择！";
		} else if (fen > 20) {
			return "口碑很差！";
		} else if (fen > 10) {
			return "恶劣！";
		}
		return "不作评价！";
	}
	/**
	 * 如果字符为空返回指定字符
	 * @param srcStr
	 * @param targetStr
	 * @return
	 */
	public static String notNull(String srcStr, String targetStr) {
		if (srcStr == null || srcStr.trim().equals("")) {
			return targetStr;
		}
		return srcStr;
	}

	/**
	 * 得到当前时间getCurrentFormatStr
	 * 
	 * @param strformat
	 * @return String
	 * 
	 */
	public static String getCurrentFormatStr(String strformat) {
		Calendar now = Calendar.getInstance();
		SimpleDateFormat formatter = new SimpleDateFormat(strformat);
		String sr = formatter.format(now.getTime());
		return sr;
	}

	/**
	 * 判断一个字符是Ascill字符还是其它字符（如汉，日，韩文字符）
	 * 
	 * @param c 需要判断的字符
	 * @return 返回true,Ascill字符
	 */
	public static boolean isLetter(char c) {
		int k = 0x80;
		return c / k == 0 ? true : false;
	}
	
	/**
	 * 得到一个字符串的长度,显示的长度,一个汉字或日韩文长度为2,英文字符长度为1
	 * 
	 * @param s 需要得到长度的字符串
	 * @return i 得到的字符串长度
	 */
	public static int length(String s) {
		if (s == null)
			return 0;
		char[] c = s.toCharArray();
		int len = 0;
		for (int i = 0; i < c.length; i++) {
			len++;
			if (!isLetter(c[i])) {
				len++;
			}
		}
		return len;
	}

	/**
	 * 截取一段字符的长度,不区分中英文,如果数字不正好，则少取一个字符位
	 * 
	 * 
	 * @param origin 原始字符串
	 * @param start 起始位置
	 * @param len  截取长度(一个汉字长度按2算的) ,长度超过取到原始字符串末
	 * @return 返回的字符串
	 */
	public static String substring(String origin, int start, int len) {
		if (origin == null || origin.equals("") || len < 1) {
			return "";
		}
		byte[] strByte = new byte[len];
		if (start + len > length(origin)) {
			len = length(origin) - start;
		}
		try {
			System.arraycopy(origin.getBytes("GBK"), start, strByte, 0, len);
			int count = 0;
			for (int i = 0; i < len; i++) {
				int value = (int) strByte[i];
				if (value < 0) {
					count++;
				}
			}
			if (count % 2 != 0) {
				len = (len == 1) ? ++len : --len;
			}
			return new String(strByte, 0, len, "GBK");
		} catch (UnsupportedEncodingException e) {
			throw new RuntimeException(e);
		}
	}

	/**
	 * 获取网页内容
	 * 
	 * @param url
	 * @return
	 */
	public static String getWebSource(String url, String encode) {
		String sCurrentLine = null;
		StringBuffer sTotalString = new StringBuffer("");
		BufferedReader buffer = null;
		try {
			// 创建一个URL对象
			URL urlObj = new URL(url);
			HttpURLConnection urlConn = (HttpURLConnection) urlObj.openConnection();
			urlConn.setRequestProperty("Accept-Charset", encode);
			urlConn.setRequestProperty("contentType", encode);
			buffer = new BufferedReader(new InputStreamReader(urlConn.getInputStream(), encode));
			while ((sCurrentLine = buffer.readLine()) != null) {
				sTotalString.append(sCurrentLine);
			}
		} catch (Exception e) {
			return "";
		} finally {
			try {
				buffer.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return sTotalString.toString();
	}

	/**
	 * 获得随机ip
	 * 
	 * @return
	 */
	public static String getRandomIP() {
		int ipStart = new Random().nextInt(255);
		ipStart = ipStart < 60 ? (ipStart + 150) : ipStart;
		String ip = ipStart + "." + new Random().nextInt(255) + "."
				+ new Random().nextInt(255) + "." + new Random().nextInt(255);
		return ip;
	}

	
	/**
	 *  今天日期加几天后的日期
	 * 
	 * @param strformat
	 * @return int
	 * 
	 */
	public static String getDayOper(String fmt,int v) {
		SimpleDateFormat format = new  java.text.SimpleDateFormat(fmt); 
		java.util.Calendar Cal=java.util.Calendar.getInstance();
		Cal.setTime(new Date());
		Cal.add(Calendar.DAY_OF_WEEK, v);
		return format.format(Cal.getTime());
	}
	/**
     * 获取当前日期是星期几
     * 
     * @param dt
     * @return 当前日期是星期几
     */
    public static String getWeekOfDate(Date dt) {
        String[] weekDays = {"日", "一", "二", "三", "四", "五", "六"};
        Calendar cal = Calendar.getInstance();
        cal.setTime(dt);
        int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
        if (w < 0){
            w = 0;
        }
        return weekDays[w];
    }
    /**
	 * 字符串转换到时间格式
	 * @param dateStr 需要转换的字符串
	 * @param formatStr 需要格式的目标字符串  举例 yyyy-MM-dd
	 * @return Date 返回转换后的时间
	 * @throws ParseException 转换异常
	 */
	public static Date StringToDate(String dateStr,String formatStr){
		DateFormat sdf=new SimpleDateFormat(formatStr);
		Date date=null;
		try {
			date = sdf.parse(dateStr);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return date;
	}
}
